package com.credithc.signature.common.mapper;

import com.credithc.baseserv.core.mapper.BsBaseMapper;
import com.credithc.signature.common.po.DatapushChannel;
import com.credithc.signature.common.po.DatapushTemplate;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @desc: <br/>
 * @author: Jingbo Hu<br/>
 * @time：2020年05⽉19⽇<br/>
 * @version：v1.0.0<br>
 */
@Mapper
public interface DatapushMapper extends BsBaseMapper<DatapushChannel> {

    // ===============================channel===========================

    /**
     * 查询datapush_channel表中是否有数据
     *
     * @return
     */
    int checkDataTableIsEmpty();

    /**
     * 查询所有的统计数据
     *
     * @return
     */
    List<DatapushChannel> listStatisticsInfos();

    /**
     * 更新昨天的数据
     *
     * @param dataPushInfos
     */
    void updateYesterdayData(List<DatapushChannel> dataPushInfos);

    /**
     * 插入数据
     *
     * @param dataPushInfos
     */
    void insertDataList(List<DatapushChannel> dataPushInfos);

    /**
     * 查询昨天的数据
     *
     * @return
     */
    List<DatapushChannel> listYesterdayData();

    /**
     * 根据时间删除数据
     *
     * @param date
     */
    void deleteByDate(String date);

    // ===============================template===========================

    /**
     * 查询datapush_template表中是否有数据
     *
     * @return
     */
    int checkDataTableIsEmpty2();

    /**
     * 查询所有的统计数据
     *
     * @return
     */
    List<DatapushTemplate> listStatisticsInfos2();

    /**
     * 插入数据
     *
     * @param dataPushInfos
     */
    void insertDataList2(List<DatapushTemplate> dataPushInfos);

    /**
     * 查询昨天的数据
     *
     * @return
     */
    List<DatapushTemplate> listYesterdayData2();

    /**
     * 根据时间删除数据
     *
     * @param date
     */
    void deleteByDate2(String date);

    /**
     * 更新昨天的数据
     *
     * @param dataPushInfos
     */
    void updateYesterdayData2(List<DatapushTemplate> dataPushInfos);

    /**
     * 根据起始时间查询
     *
     * @param dateFrom
     * @param dateTo
     * @return
     */
    List<DatapushChannel> listStatisticsInfosByDate(@Param("dateFrom") String dateFrom, @Param("dateTo") String dateTo);

    /**
     * 根据起始时间查询
     *
     * @param dateFrom
     * @param dateTo
     * @return
     */
    List<DatapushTemplate> listStatisticsInfosByDate2(@Param("dateFrom") String dateFrom, @Param("dateTo") String dateTo);

    /**
     * 查询所有
     *
     * @return
     */
    List<DatapushChannel> listAllDataInfos();

    /**
     * 查询所有
     *
     * @return
     */
    List<DatapushTemplate> listAllDataInfos2();

    /**
     * 查询签署量大的前20的模板数据
     *
     * @return
     */
    List<DatapushTemplate> listTop20DataInfoS();
}
